﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

// Reviewed

#pragma once

#include "GcmpGeometryInterface.h"

namespace gcmp
{
    class Intervald;
    class Vector2d;

    /// \brief 二维曲线重合数据
    ///
    class GCMP_GEOMETRY_INTERFACE_EXPORT ICurve2dCoincidenceData
    {
    public:
        /// \brief  获取重合段起点在第一条、第二条边的交点信息
        ///
        /// \return 重合段起点在第一条、第二条边的交点信息
        virtual std::vector<Vector2d> GetStartPoints() const = 0;

        
        /// \brief  获取重合段终点在第一条、第二条边的交点信息
        ///
        /// \return 重合段终点在第一条、第二条边的交点信息
        virtual std::vector<Vector2d> GetEndPoints() const = 0;

        
        /// \brief  获取重合段在第一条、第二条边的参数域范围
        ///
        /// \return 重合段在第一条、第二条边的参数域范围（第二条边的参数域范围可能非法）
        virtual std::vector<Intervald> GetIntervalds() const = 0;

    };
}

